package cn.yanghx.pay.vo.feign.wechat.app.prepay;


import cn.yanghx.pay.vo.pay.prepay.PrePayParams;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;


import javax.validation.constraints.NotNull;

/**
 * @author yanghx
 */
@Data
public class WechatAppPrepayParams implements PrePayParams {

    @NotNull
    //("  应用ID")
    private String appid;

    @NotNull
    //("  直连商户号")
    @JsonProperty("mchid")
    private String mchId;

    @NotNull
    //("  商品描述")
    private String description;

    @NotNull
    //("  商户订单号")
    @JsonProperty("out_trade_no")
    private String outTradeNo;

    //("  交易结束时间")
    @JsonProperty("time_expire")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String timeExpire;

    //("  附加数据")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String attach;

    @NotNull
    //("  通知地址")
    @JsonProperty("notify_url")
    private String notifyUrl;

    //("订单优惠标记")
    @JsonProperty("goods_tag")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String goodsTag;

    @NotNull
    //("订单金额信息")
    private PrepayAmount amount;

    //("优惠功能")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private PrepayDetail detail;


    //("场景信息")
    @JsonProperty("scene_info")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private PrepaySceneInfo sceneInfo;

    //("结算信息")
    @JsonProperty("settle_info")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private PrepaySettleInfo settleInfo;


}
